home *** CD-ROM | disk | FTP | other *** search
- VERSION 5.00
- Begin VB.Form frmMain
- BorderStyle = 3 'Fixed Dialog
- Caption = " Mail Merge Sample"
- ClientHeight = 855
- ClientLeft = 45
- ClientTop = 330
- ClientWidth = 2610
- Icon = "frmMain.frx":0000
- LinkTopic = "Form1"
- LockControls = -1 'True
- MaxButton = 0 'False
- MinButton = 0 'False
- ScaleHeight = 855
- ScaleWidth = 2610
- ShowInTaskbar = 0 'False
- Begin VB.CommandButton cmdMailMerge
- Caption = "&Mail Merge"
- Default = -1 'True
- Height = 495
- Left = 930
- TabIndex = 0
- Top = 180
- Width = 1500
- End
- Begin VB.Image Image1
- Height = 480
- Left = 225
- Picture = "frmMain.frx":0442
- Top = 180
- Width = 480
- End
- Attribute VB_Name = "frmMain"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- '**(MODULE HEADER)*************************************************
- '* Author: Microsoft Corporation
- '* Purpose: This VB Project was created using sample code from
- '* Microsoft's Knowledgebase.
- '******************************************************************
- Dim wrdApp As Word.Application
- Dim wrdDoc As Word.Document
- Private Sub cmdMailMerge_Click()
- Dim wrdSelection As Word.Selection
- Dim wrdMailMerge As Word.MailMerge
- Dim wrdMergeFields As Word.MailMergeFields
- Dim StrToAdd As String
- On Error GoTo Error_Handler
- Screen.MousePointer = vbHourglass
- ' Create an instance of Word and make it visible
- Set wrdApp = CreateObject("Word.Application")
- wrdApp.Visible = True
- ' Add a new document
- Set wrdDoc = wrdApp.Documents.Add
- wrdDoc.Select
- Set wrdSelection = wrdApp.Selection
- Set wrdMailMerge = wrdDoc.MailMerge
- ' Create MailMerge Data file
- CreateMailMergeDataFile
- ' Create a string and insert it into the document
- StrToAdd = "State University" & vbCr & "Electrical Engineering Department"
- wrdSelection.ParagraphFormat.Alignment = wdAlignParagraphCenter
- wrdSelection.TypeText StrToAdd
- InsertLines 4 ' Insert merge data
- wrdSelection.ParagraphFormat.Alignment = wdAlignParagraphLeft
- Set wrdMergeFields = wrdMailMerge.Fields
- wrdMergeFields.Add wrdSelection.Range, "FirstName"
- wrdSelection.TypeText " "
- wrdMergeFields.Add wrdSelection.Range, "LastName"
- wrdSelection.TypeParagraph
- wrdMergeFields.Add wrdSelection.Range, "Address"
- wrdSelection.TypeParagraph
- wrdMergeFields.Add wrdSelection.Range, "CityStateZip"
- InsertLines 2
- ' Right justify the line and insert a date field' with the current date
- wrdSelection.ParagraphFormat.Alignment = wdAlignParagraphRight
- wrdSelection.InsertDateTime _
- DateTimeFormat:="dddd, MMMM dd, yyyy", InsertAsField:=False
- InsertLines 2
- ' Justify the rest of the document
- wrdSelection.ParagraphFormat.Alignment = wdAlignParagraphJustify
- wrdSelection.TypeText "Dear "
- wrdMergeFields.Add wrdSelection.Range, "FirstName"
- wrdSelection.TypeText ","
- InsertLines 2
- ' Create a string and insert it into the document
- StrToAdd = "Thank you for your recent request for next " & _
- "semester's class schedule for the Electrical " & _
- "Engineering Department. Enclosed with this " & _
- "letter is a booklet containing all the classes " & _
- "offered next semester at State University. " & _
- "Several new classes will be offered in the " & _
- "Electrical Engineering Department next semester. " & _
- "These classes are listed below."
- wrdSelection.TypeText StrToAdd
- InsertLines 2 ' Insert a new table with 9 rows and 4 columns
- wrdDoc.Tables.Add wrdSelection.Range, NumRows:=9, _
- NumColumns:=4
- With wrdDoc.Tables(1) ' Set the column widths
- .Columns(1).SetWidth 51, wdAdjustNone
- .Columns(2).SetWidth 170, wdAdjustNone
- .Columns(3).SetWidth 100, wdAdjustNone
- .Columns(4).SetWidth 111, wdAdjustNone
-
- ' Set the shading on the first row to light gray
- .Rows(1).Cells.Shading.BackgroundPatternColorIndex = wdGray25
-
- ' Bold the first row
- .Rows(1).Range.Bold = True
-
- ' Center the text in Cell (1,1)
- .Cell(1, 1).Range.Paragraphs.Alignment = wdAlignParagraphCenter
-
- ' Fill each row of the table with data
- FillRow wrdDoc, 1, "Class Number", "Class Name", "Class Time", "Instructor"
- FillRow wrdDoc, 2, "EE220", "Introduction to Electronics II", "1:00-2:00 M,W,F", "Dr. Jensen"
- FillRow wrdDoc, 3, "EE230", "Electromagnetic Field Theory I", "10:00-11:30 T,T", "Dr. Crump"
- FillRow wrdDoc, 4, "EE300", "Feedback Control Systems", "9:00-10:00 M,W,F", "Dr. Murdy"
- FillRow wrdDoc, 5, "EE325", "Advanced Digital Design", "9:00-10:30 T,T", "Dr. Alley"
- FillRow wrdDoc, 6, "EE350", "Advanced Communication Systems", "9:00-10:30 T,T", "Dr. Taylor"
- FillRow wrdDoc, 7, "EE400", "Advanced Microwave Theory", "1:00-2:30 T,T", "Dr. Lee"
- FillRow wrdDoc, 8, "EE450", "Plasma Theory", "1:00-2:00 M,W,F", "Dr. Davis"
- FillRow wrdDoc, 9, "EE500", "Principles of VLSI Design", "3:00-4:00 M,W,F", "Dr. Ellison"
- End With
- ' Go to the end of the document
- wrdApp.Selection.GoTo wdGoToLine, wdGoToLast
- InsertLines 2
- ' Create a string and insert it into the document
- StrToAdd = "For additional information regarding the " & _
- "Department of Electrical Engineering, " & _
- "you can visit our Web site at "
- wrdSelection.TypeText StrToAdd
- ' Insert a hyperlink to the Web page
- wrdSelection.Hyperlinks.Add Anchor:=wrdSelection.Range, Address:="http://www.ee.stateu.tld"
- ' Create a string and insert it into the document
- StrToAdd = ". Thank you for your interest in the classes " & _
- "offered in the Department of Electrical " & _
- "Engineering. If you have any other questions, " & _
- "please feel free to give us a call at " & _
- "555-1212." & vbCr & vbCr & _
- "Sincerely," & vbCr & vbCr & _
- "Kathryn M. Hinsch" & vbCr & _
- "Department of Electrical Engineering" & vbCr
- wrdSelection.TypeText StrToAdd
- ' Where to send the document?'
- wrdMailMerge.Destination = wdSendToNewDocument
- ' wrdMailMerge.Destination = wdSendToEmail
- ' wrdMailMerge.Destination = wdSendToFax
- ' wrdMailMerge.Destination = wdSendToPrinter
- ' --- Perform MAIL MERGE --- '
- wrdMailMerge.Execute False
- wrdDoc.PrintPreview
- ' Close the original form document
- wrdDoc.Saved = True
- ' wrdDoc.Close False
- ' Notify user we are done.
- MsgBox "Mail Merge Complete.", vbMsgBoxSetForeground
- ' Release References
- Set wrdSelection = Nothing
- Set wrdMailMerge = Nothing
- Set wrdMergeFields = Nothing
- Set wrdDoc = Nothing
- Set wrdApp = Nothing
- ' Cleanup temp file
- ' Kill "C:\DataDoc.doc"
- Screen.MousePointer = vbDefault
- Exit Sub
- Error_Handler:
- Screen.MousePointer = vbDefault
- MsgBox "Error: " & Err.Number & vbLf & vbLf & Err.Description, vbExclamation, "Mail Merge Error!"
- End Sub
- Public Sub InsertLines(LineNum As Integer)
- Dim iCount As Integer
- 'INSERT BLANK LINES IN MS WORD
- For iCount = 1 To LineNum
- wrdApp.Selection.TypeParagraph
- Next iCount
- End Sub
- Public Sub FillRow(Doc As Word.Document, Row As Integer, _
- Text1 As String, Text2 As String, _
- Text3 As String, Text4 As String)
-
- With Doc.Tables(1) ' Insert the data into the specific cell
- .Cell(Row, 1).Range.InsertAfter Text1
- .Cell(Row, 2).Range.InsertAfter Text2
- .Cell(Row, 3).Range.InsertAfter Text3
- .Cell(Row, 4).Range.InsertAfter Text4
- End With
- End Sub
- Public Sub CreateMailMergeDataFile()
- Dim wrdDataDoc As Word.Document
- Dim X As Integer
- ' Create a data source at C:\DataDoc.doc containing the field data
- wrdDoc.MailMerge.CreateDataSource Name:="C:\DataDoc.doc", HeaderRecord:="FirstName, LastName, Address, CityStateZip"
- ' Open the file to insert data
- Set wrdDataDoc = wrdApp.Documents.Open("C:\DataDoc.doc")
- For X = 1 To 2
- wrdDataDoc.Tables(1).Rows.Add
- Next X
- ' Fill in the data
- FillRow wrdDataDoc, 2, "Steve", "DeBroux", "4567 Main Street", "Buffalo, NY 98052"
- FillRow wrdDataDoc, 3, "Jan", "Miksovsky", "1234 5th Street", "Charlotte, NC 98765"
- FillRow wrdDataDoc, 4, "Brian", "Valentine", "12348 78th Street Apt. 214", "Lubbock, TX 25874"
- ' Save and close the file
- wrdDataDoc.Save
- wrdDataDoc.Close False
- End Sub
-